package com.hospital.service;

import com.hospital.vo.MedicineVO;
import com.hospital.vo.ResponseVO;

/**
 * 药品的业务层接口
 * @author gzy
 * @date 2022/03/28
 */
public interface MedicineService {
    /**
     * 获取所有药品详细
     * @param pageNum 页码
     * @param pageSize 每页显示数据的条数
     * @return 所有药品详细
     */
    default ResponseVO getAllMedicine(Integer pageNum,Integer pageSize){
        return ResponseVO.buildSuccessInstance(ResponseVO.NULL_RESULT);
    }

    /**
     * 根据药品编号获取药品的详细信息
     * @param medicineId 药品编号
     * @return 药品的详细信息
     */
    default ResponseVO getMedicineDetails(String medicineId){
        return ResponseVO.buildSuccessInstance(ResponseVO.NULL_RESULT);
    }

    /**
     * 添加药品
     * @param medicineVO 药品的VO
     * @return 药品是否成功添加
     */
    default ResponseVO addMedicine(MedicineVO medicineVO){
        return ResponseVO.buildSuccessInstance(ResponseVO.UPDATE_FAIL);
    }

    /**
     * 多行删除：根据药品编号删除药品信息
     * @param medicineIds 药品编号列表
     * @return 药品是否删除成功和药品删除的行数
     */
    default ResponseVO delMedicine(String[] medicineIds){
        return ResponseVO.buildSuccessInstance(ResponseVO.DELETE_FAIL,0);
    }

    /**
     * 根据药品编号修改药品信息
     * @param medicineVO 药品的VO
     * @return 药品信息是否修改成功
     */
    default ResponseVO updateMedicine(MedicineVO medicineVO){
        return ResponseVO.buildSuccessInstance(ResponseVO.UPDATE_FAIL);
    }

    /**
     * 条件搜索，模糊查询：根据药品名称和类别查询对应的药品集
     * @param medicineName 药品名称
     * @param medicineType 药品类别
     * @return 药品的结果集
     */
    default ResponseVO searchMedicine(String medicineName, Integer medicineType){
        return ResponseVO.buildSuccessInstance(ResponseVO.NULL_RESULT);
    }
}
